package com.zxy.ziems.server.service;

import com.zxy.btp.common.response.PageResult;
import com.zxy.btp.mybatis.base.BtpBaseService;
import com.zxy.ziems.server.domain.User;
import com.zxy.ziems.server.dto.ChangePwdDto;
import com.zxy.ziems.server.dto.UserDto;
import com.zxy.ziems.server.dto.UserQueryDto;
import com.zxy.ziems.server.dto.UserRoleDto;
import com.zxy.ziems.server.foms.dto.TenantUser;
import com.zxy.ziems.server.vo.UserInfoVo;
import com.zxy.ziems.server.vo.UserVo;

/**
 * (TUser)表服务接口
 *
 * @author makejava
 * @since 2023-11-17 10:29:09
 */
public interface UserService extends BtpBaseService<User> {

    void insertOrUpdate(UserDto userDto);

    void stopOrStart(UserDto userDto);

    void divideRole(UserRoleDto userRoleDto);

    void resetPassword(String userId);

    void changePassword(ChangePwdDto changePwdDto);

    PageResult<UserVo> pageList(UserQueryDto userQueryDto);

    /**
     * 获取指定用户的信息
     * @param userId
     * @return
     */
    UserInfoVo getUserInfo(String userId);

    User loadById(String updateUserId);

    PageResult<UserVo> pageListFoms(UserQueryDto userQueryDto);

    /**
     * 初始化管理员资源
     * @param tenantUser
     */
    void initResources(TenantUser tenantUser);
}

